小蒟蒻好久没有写一篇搜索的题解了(明明可以DP的说,今天用DFS解决一下这道题目
观察题意,我们可以发现题目中所求的组合总数的序列是一个单调不下降的序列,那么我们在DFS时设置参数就可以设置三个,分别是K1(保存还能用的数的个数),sum(当前记录的使用的数的和),num(当前序列选的数)
在这里多讲一下num这个参数,因为选的数的序列是单调不下降的,所以我们选的数一定比前面大或者相同,因此我们可以用num保存当前选的数,这样就可以保证序列不会重,并且这也是个简单的优化。(虽然不如DP快,但是好想啊qwq,并且亲测DP空间比DFS要大一点(虽然时间快了N倍QAQ))
上代码(代码中也有部分解释
1 |
|